package cn.fl.project.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.base.lnkcomp.transform.BasePrjLnkCompBkAccVOTransform;
import cn.fl.project.vo.PrjLnkCompBkAccVO;
import cn.fl.system.transform.SysUlFilesRecVOTransform;
import fl.spl.facade.lnkcomp.dto.PrjLnkCompBkAccDTO;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 挂靠公司银行账户信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class PrjLnkCompBkAccVOTransform extends BasePrjLnkCompBkAccVOTransform {


    /**
     * DTO 转  VO
     *
     * @param dto PrjLnkCompBkAccDTO
     * @return PrjLnkCompBkAccVO
     */
    public static PrjLnkCompBkAccVO toVO(PrjLnkCompBkAccDTO dto) {
        PrjLnkCompBkAccVO vo = baseToVO(dto);
        if (vo != null) {
            vo.setAudStsCdNm(dto.getAudStsCdNm());//审核状态
            vo.setPurpCdNm(dto.getPurpCdNm());//账号用途
            vo.setRgnNms(dto.getRgnNms());//区域
            vo.setBizTypCdNm(dto.getBizTypCdNm());//供应商账号类型
            vo.setSysUlFilesRecVOList(SysUlFilesRecVOTransform.toVOList(dto.getSysUlFilesRecDTOList()));//供应商账号-附件记录
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo PrjLnkCompBkAccVO
     * @return PrjLnkCompBkAccDTO
     */
    public static PrjLnkCompBkAccDTO toDTO(PrjLnkCompBkAccVO vo) {
        PrjLnkCompBkAccDTO dto = baseToDTO(vo);
        if (vo != null) {
            dto.setAudStsCdNm(vo.getAudStsCdNm());//审核状态
            dto.setPurpCdNm(vo.getPurpCdNm());//账号用途
            dto.setRgnNms(vo.getRgnNms());//区域
            dto.setBizTypCdNm(vo.getBizTypCdNm());//供应商账号类型
            dto.setSysUlFilesRecDTOList(SysUlFilesRecVOTransform.toDTOList(vo.getSysUlFilesRecVOList()));//供应商账号-附件记录

        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<PrjLnkCompBkAccDTO>
     * @return List<PrjLnkCompBkAccVO>
     */
    public static List<PrjLnkCompBkAccVO> toVOList(List<PrjLnkCompBkAccDTO> list) {
        List<PrjLnkCompBkAccVO> voList = new ArrayList<PrjLnkCompBkAccVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (PrjLnkCompBkAccDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<PrjLnkCompBkAccVO>
     * @return List<PrjLnkCompBkAccDTO>
     */
    public static List<PrjLnkCompBkAccDTO> toDTOList(List<PrjLnkCompBkAccVO> list) {
        List<PrjLnkCompBkAccDTO> dtoList = new ArrayList<PrjLnkCompBkAccDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (PrjLnkCompBkAccVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }
}
